The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Many laptop and notebook computers (hereinafter computers) use solid-state memory (e.g., flash memory) to cache data that is frequently used by applications running on the computers. Using solid-state memory to cache frequently used data can offer many benefits. For example, system performance can be improved by caching frequently used data in solid-state memory since the access time of solid-state memory is considerably shorter than the access time of hard disk drives (HDDs). Additionally, since solid-state memory typically consumes less power than the HDDs, the power consumption of the computers can be reduced by caching frequently used data in solid-state memory and spinning down or turning off the HDDs for extended periods of time.
Solid-state memory can be used to cache data in many ways. For example, in some computers, flash memory is integrated into the HDDs. The HDDs with integrated flash memory for caching data are called hybrid HDDs. In hybrid HDDs, however, caching is problematic. Specifically, when a hybrid HDD receives data, the hybrid HDD cannot determine whether the data needs to be cached in the flash memory or stored on the HDD. This is because both the flash memory and the HDD receive the data via the same interface of the hybrid HDD (e.g., SATA interface), and the interface cannot differentiate the data that needs to be cached from the data that need not be cached.
Alternatively, external solid-state disks (SSDs) comprising solid-state memory can be plugged into the computers to cache the frequently used data. Unlike the hybrid HDDs that include both the solid-state memory and the HDDs, the external SSDs are separate devices from the HDDs. Device drivers for the external SSDs are separate from the device drivers for the HDDs. The device drivers for the SSDs comprise caching modules that can identify the data that needs to be cached. The device drivers for the SSDs route the data that needs to be cached to the SSDs instead of the HDDs. Accordingly, frequently used data can be easily cached to the SSDs. Additionally, the SSDs may be used as primary storage devices instead of or in addition to the HDDs when the cost of the SSDs comes down.
Referring now to FIG. 1, a notebook computer 200 comprises a central processing unit (CPU) 202 that utilizes a peripheral component interconnect express (PCIe) bus 204 for communicating with internal peripheral devices. For example, the internal peripheral devices may include a HDD 206 having a PCIe interface 208. Additionally, the notebook computer 200 provides a PCIe slot 210 for connecting an external device having a PCIe connector to the notebook computer 200. The external device may include a SSD 212. The SSD 212 is typically manufactured as a 2.5″ form-factor device. The SSD 212 comprises a PCIe connector 214 that plugs into the PCIe slot 210, a SSD controller 216, and solid-state memory 218. The solid-state memory 218 may include flash memory.
Additionally, the notebook computer 200 may comprise one or more wireless network adapters for communicating with other wireless network devices. The wireless network adapters may include a wireless local area network (LAN) adapter 220, a Bluetooth® (BT) adapter 222, and/or a cellular network adapter 224. The wireless network adapters are typically integrated on a motherboard (not shown) of the notebook computer 200.
The CPU 202 runs an operating system (OS) stored on the HDD 206. The OS includes device drivers that allow the internal and external peripherals to communicate with the CPU 202 via the PCIe bus 204. When the SSD 212 is plugged into the PCIe slot 210, the CPU 202 communicates with the SSD 212 using a device driver for the SSD 212 and selectively caches data in the SSD 212.